package 程序员面试金典;

import org.junit.Test;

import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;

public class 字母与数字 {

    //使用前缀和 把字母当成1， 数字当成 -1
    public String[] findLongestSubarray(String[] array) {
        int start=0,end=0;
        int preSum=0;
        HashMap<Integer, Integer> map = new HashMap<>();
        map.put(0,-1);
        for (int i = 0; i < array.length; i++) {
            preSum+=Character.isDigit(array[i].charAt(0))?1:-1;
            if (!map.containsKey(preSum))
                map.put(preSum,i);
            else{
                Integer index = map.get(preSum);
                if (i-index>end-start){
                    start=index;
                    end=i;
                }
            }
        }
        return Arrays.copyOfRange(array,start+1,end+1);
    }


    @Test
    public void test(){
        int[] nums={1,2,3,4,5,6};
        int[] ints = Arrays.copyOfRange(nums, 1, 3);
        for (int i = 0; i < ints.length; i++) {
            System.out.println(ints[i]);
        }
    }
}
